Durability, in database terms, refers to the ability of a database to ensure that a transaction remains committed, even in the event of power loss or other issue. In distributed systems, consistency and availability exist in tension with each other, and in order to provide durability, availability is often sacrificed. As a result, it is difficult to provide a durable solution in a high-volume, latency sensitive system. For example, to reduce latency, some distributed systems are designed to write messages to storage at the end of a message processing stream. In other words, the message will travel through any number of application layers prior to being written to storage. This increases the potential of the message being lost or dropped prior to being written in storage.